package com.cn.wanxi.thread;

import lombok.SneakyThrows;

public class MySynchronized {
    public static void main(String[] args) {
// 男女朋友面对面在坐着准备吃饭，但是桌子两端各只有一只筷子，只有都拿到两只筷子才能吃饭A和B筷子
        new Thread(new Runnable() {
            @SneakyThrows
            @Override
            public void run() {
                Thread.sleep(1000);
                synchronized ("刀") {
                    System.out.println(Thread.currentThread().getName() + "拿到刀了");
                    synchronized ("叉") {
                        System.out.println(Thread.currentThread().getName() + "拿到刀子,同时拿到叉，可以吃饭了");
                    }
                }
            }
        }, "男朋友").start();

        new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized ("叉") {
                    System.out.println(Thread.currentThread().getName() + "拿到叉子了");
                    synchronized ("刀") {
                        System.out.println(Thread.currentThread().getName() + "拿到叉子,同时拿到刀，可以吃饭了");
                    }
                }
            }
        }, "女朋友").start();
    }
}